package com.laowang.project.system.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.laowang.framework.aspectj.lang.annotation.Excel;
import com.laowang.framework.web.domain.PageObject;
import com.laowang.project.system.domain.vo.WxUserVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.*;
import java.io.Serializable;
import java.util.List;

/**
 * 车友活动对象 my_cyh_activity
 *
 * @author laowang
 * @date 2023-04-24
 */
@NoArgsConstructor
@Data
public class MyCyhActivity extends PageObject implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * $column.columnComment
     */
    @ApiModelProperty(value = "${comment}", required = false)
    private Integer id;

    /**
     * 活动标题
     */
    @Excel(name = "活动标题")
    @ApiModelProperty(value = "活动标题", required = false)
    private String title;

    /**
     * 活动缩略图
     */
    @Excel(name = "活动缩略图")
    @ApiModelProperty(value = "活动缩略图", required = false)
    private String img;

    /**
     * 活动费用
     */
    @Excel(name = "活动费用")
    @ApiModelProperty(value = "活动费用", required = false)
    private BigDecimal fee;

    @Transient
    private BigDecimal fee1;

    /**
     * 活动地址
     */
    @Excel(name = "活动地址")
    @ApiModelProperty(value = "活动地址", required = false)
    private String address;

    /**
     * 地址详细
     */
    @Excel(name = "地址详细")
    @ApiModelProperty(value = "地址详细", required = false)
    private String addressDetail;

    /**
     * 活动时间-开始
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "活动时间-开始", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "活动时间-开始", required = false)
    private Date atimeStart;

    /**
     * 活动时间-结束
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "活动时间-结束", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "活动时间-结束", required = false)
    private Date atimeEnd;

    /**
     * 活动获得积分值
     */
    @Excel(name = "活动获得积分值")
    @ApiModelProperty(value = "活动获得积分值", required = false)
    private Integer score;

    /**
     * 排序
     */
    @Excel(name = "排序")
    @ApiModelProperty(value = "排序", required = false)
    private Integer weight;

    @ApiModelProperty(value = "审核状态", required = false)
    private Integer auditStatus;

    @ApiModelProperty(value = "审核状态", required = false)
    private Integer isTemporary;

    @ApiModelProperty(value = "活动佣金类型", required = false)
    private Integer amountType;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "创建时间", required = false)
    private Date ctime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "更新时间", required = false)
    private Date utime;

    /**
     * 活动类型
     */
    @Excel(name = "活动类型")
    @ApiModelProperty(value = "活动类型", required = false)
    private String cate;

    /**
     * 活动轮播图
     */
    @Excel(name = "活动轮播图")
    @ApiModelProperty(value = "活动轮播图", required = false)
    private String imgs;

    /**
     * 活动副标题
     */
    @Excel(name = "活动副标题")
    @ApiModelProperty(value = "活动副标题", required = false)
    private String subtitle;

    /**
     * 可报名总人数
     */
    @Excel(name = "可报名总人数")
    @ApiModelProperty(value = "可报名总人数", required = false)
    private Integer nums;

    @ApiModelProperty(value = "创建活动的后台id", required = false)
    private Long createBy;


    private Integer inSurance;//需要保险0非,1是

    private Integer isRefund;//0不退,1退款

    private BigDecimal commission;//活动佣金百分比

    private BigDecimal commission1;//活动佣金固定金额

    private BigDecimal surancePrice;//保险费用

    /**
     * 剩余人数
     */
    @Excel(name = "剩余人数")
    @ApiModelProperty(value = "剩余人数", required = false)
    private Integer leave;

    /**
     * 活动介绍
     */
    @Excel(name = "活动介绍")
    @ApiModelProperty(value = "活动介绍", required = false)
    private String intro;

    /**
     * 参与条件
     */
    @Excel(name = "参与条件")
    @ApiModelProperty(value = "参与条件", required = false)
    private String rules;

    @ApiModelProperty(value = "活动参数", required = false)
    private String params;

    /**
     * $column.columnComment
     */
    @Excel(name = "参与条件")
    @ApiModelProperty(value = "参与条件", required = false)
    private String lat;

    /**
     * $column.columnComment
     */
    @Excel(name = "参与条件")
    @ApiModelProperty(value = "参与条件", required = false)
    private String lng;

    /**
     * 1免费,0收费
     */
    @Excel(name = "1免费,0收费")
    @ApiModelProperty(value = "1免费,0收费", required = false)
    private Integer isFree;

    @ApiModelProperty(value = "活动核销人", required = false)
    private Integer checkUser;

    @ApiModelProperty(value = "1固定会员折扣,2会员等级折扣", required = false)
    private Integer discountType;

    @ApiModelProperty(value = "固定会员 折扣价格", required = false)
    private BigDecimal fixDisPrice;


    @ApiModelProperty(value = "推荐官折扣", required = false)
    private BigDecimal promoDiscount;


    @ApiModelProperty(value = "合伙人折扣", required = false)
    private BigDecimal partnerDiscount;

    @ApiModelProperty(value = "会员等级折扣参数", required = false)
    private String details;//




    @Transient
    private List<WxUserVo> users;

    @Transient
    private List<MyCyhActivityCode> myCyhActivityCodes;

    @Transient
    private Integer expire;

    @Transient
    private BigDecimal price1;


}
